package com.hlkj.pay.vo.openapi.fund.req;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import org.hibernate.validator.constraints.URL;

import com.hlkj.framework.common.valid.EnumValid;
import com.hlkj.framework.common.valid.HlkjDateValid;
import com.hlkj.pay.enums.CommonEnum;
import com.hlkj.pay.vo.BaseReq;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

/**
* 商户营业执照表
* @TableName t_merchant_access_license
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class OpenApiFundAccountLicenseReq extends BaseReq {
    @Schema(description ="企业类型  ")
    @NotNull(message = "企业类型 不能为空")
    private String companyType;
    
    @Schema(description ="商户名称")
    @NotEmpty(message = "商户名称 不能为空")
    private String name;
    /**
    * 营业执照url
    */
    @Schema(description ="营业执照url")
    @NotEmpty(message = "营业执照url 不能为空")
    @URL(message = "营业执照url 不是合法url")
    private String licenseUrl;
    /**
    * 营业执照编号
    */
    @Schema(description ="营业执照编号")
    @NotEmpty(message = "营业执照编号 不能为空")
    private String licenseCode;
    /**
    * 证照类型
    */
    @Size(max= 64,message="编码长度不能超过64")
    @Schema(description ="证照类型 字典接口通过 dictKey=licenseType 获取")
    @NotEmpty(message = "营业执照证照类型 不能为空")
    private String licenseType;
    /**
    * 证件有效期类型 1：长期有效；0：非长期有效 
    */
    @Schema(description ="证件有效期类型 1：长期有效；0：非长期有效 ")
    @EnumValid(value = CommonEnum.YES_NO_TYPE.class,message = "证件有效期类型 无效")
    private Integer licenseValidityType;
    /**
    * 有效期开始日期
    */
    @Schema(description ="有效期开始日期")
    @NotEmpty(message = "有效期开始日期 不能为空")
    @HlkjDateValid(message = "有效期开始日期 格式非yyyy-MM-dd")
    private String licenseBeginDate;
    /**
    * 有效期截止日期
    */
    @Schema(description ="有效期截止日期")
    @NotEmpty(message = "有效期开始日期 不能为空")
    @HlkjDateValid(message = "有效期开始日期 格式非yyyy-MM-dd")
    private String licenseEndDate;
    /**
    * 省份编码
    */
    @Schema(description ="省份编码 省份编码 字典接口通过 dictKey=areaCode,dictLevel=1 获取")
    @NotEmpty(message = "省份编码 不能为空")
    private String provinceCode;
    /**
    * 城市编码
    */
    @Schema(description ="城市编码 字典接口通过 dictKey=areaCode,parentDictKey=provinceCode,dictLevel=2 获取 ")
    @NotEmpty(message = "城市编码 不能为空")
    private String cityCode;
    /**
    * 区域编码
    */
    @Schema(description ="区域编码 字典接口通过 dictKey=areaCode,parentDictKey=cityCode,dictLevel=3 获取 ")
    @NotEmpty(message = "区域编码 不能为空")
    private String areaCode;


}
